// 包声明语句，用于组织和管理Java类
// com.itheima.staticmethod是包的路径，表示该类位于staticmethod包下
package com.itheima.staticmethod;

// 定义了一个名为Student的公共类
// public表示这个类可以被其他包中的类访问
public class Student {
    // 定义了一个私有实例变量score
    // private表示这个变量只能在Student类内部访问
    // double是数据类型，表示可以存储小数
    // score用于存储学生的分数
    private double score;
    
    // 静态方法：有static修饰，属于类持有
    // 静态方法不需要创建对象就可以调用，直接通过"类名.方法名"调用
    // public表示这个方法可以被其他类访问
    // void表示方法没有返回值
    // printHelloWorld是方法名
    public static void printHelloWorld(){
        // 打印三行"Hello World"
        // 静态方法中不能访问非静态成员变量
        System.out.println("Hello World");
        System.out.println("Hello World");
        System.out.println("Hello World");
    }

    // 实例方法：没有static修饰，属于对象持有
    // 实例方法需要先创建对象，然后通过"对象名.方法名"调用
    // public表示这个方法可以被其他类访问
    // void表示方法没有返回值
    // printPass是方法名，用于判断学生是否通过考试
    public void printPass(){
        // 使用三元运算符判断分数是否大于等于60
        // 如果score >= 60为true，打印"通过了"
        // 如果为false，打印"您挂科了！"
        // 实例方法可以访问实例变量score
        System.out.println(score >= 60 ? "通过了" : "您挂科了！");
    }

    // setter方法：用于设置私有变量score的值
    // public表示这个方法可以被其他类访问
    // void表示方法没有返回值
    // setScore是方法名，参数是一个double类型的score
    public void setScore(double score) {
        // this表示当前对象
        // this.score指的是当前对象的成员变量score
        // =右边的score是方法的参数
        // 这行代码将方法参数的值赋给对象的成员变量
        this.score = score;
    }
}
